[Pentaho] S3 File Output ~Talend の tS3Put との違い~
最近 Data Integration ツールの Pentaho に触れ始めたのですが、その中で「Amazon S3 へファイルをアップロードする」ことの実現に戸惑ったのでここに記します。
Talend "tS3Put"
今まで Talend Open Studio を利用する機会が多かったのですが、その Talend では Amazon S3 へファイルをアップロードする際に「tS3Put」というコンポーネントを用います。
このコンポーネントは任意のファイルを指定した S3 上のバケットへアップロードすることができます。
Pentaho "S3 File Output"
対して、Pentaho では「データ変換」の「S3 File Output」ステップを用います。
設定項目を見ると、「ファイル名」などとあるのでここで S3 へ上げるファイルを指定するのかなと思ったのですが「参照」ボタンを押下すると
「Location」に S3 とあるように「なんでアップロードするファイルの選択で S3 上のオブジェクトを参照するんだろう?」と混乱するに至りました。
"Output" であって "Put (Upload)" ではない
結論としては、見出しの通り「Pentaho のステップは "Output" であって "Put (Upload)" ではない」ということでした。
まず、前述の「ファイル名」項目は「アップロード対象ファイル」ではなく、「出力先の S3 オブジェクト」を表しています。(Location で「Local」が選択できるのは何故なんでしょう……。)
CSV などのようなテキストデータを入力してそれをストリームのような形で S3 の対象ファイルへ文字通り「出力」していくというのが Pentaho S3 File Output ステップのスタイルだったんですね。
なので「既存のファイルに追加する」なんていうオプションもあります。
これは Talend には無い機能かなと思います。
まとめ
今回の件は Talend コンポーネントの先入観にとらわれてしまったことが混乱の原因でした。今後はもう少し Pentaho を使い込んで Talend のジョブとの比較などをしていきたいと思います。